package com.mipo.j2se.actualparameter;


/**
实参和形参的区别：
1.形参变量只有在被调用时才分配内存单元，在调用结束后，立即释放所分配的内存单元。因此，形参只有在函数内部有效。函数调用结束返回主调函数后则不能在使用该形参变量。
2.实参可以变量、函数、数组等。无论实参是何种类型的，在进行函数调用时，他们都必须具有确定的值，一便把这些值传送给形参。
3.形参和实参在类型、数量、顺序上应该保持严格的一致。
4.函数在调用中发生的数据传递是单向的。即只能把实参的值传送给形参，而不能把形参的值反向传送给实参。因此，在函数调用过程中，形参的值发生改变，而实参中的值不会改变。

 * @author kitty
 *
 */
public class Main {

	public static void main(String[] args) {
		int[] a = { 1, 2, 3, 4, 5 };
		expand(a);
		changeArray(a);
		printArray(a);
	}

	public static void expand(int[] a) {
		int[] newArray = new int[a.length * 2];
		System.arraycopy(a, 0, newArray, 0, a.length);
		a = newArray;
	}

	public static void changeArray(int[] a) {
		a[0] = 10;
	}

	public static void printArray(int[] a) {
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + "\t");
		}
		System.out.println();
	}

}
